package enfase.cfc.entidade;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Classe que representa a entidade Usuario
 * 
 * @author Leonardo
 * 
 */
@Entity
@Table(name = "cfc_usuario")
public class Usuario implements Serializable {

	private static final long serialVersionUID = 2373586767063323982L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "SEQ_USUARIO")
	private Long id;
	@Column(name = "SEQ_PESSOA")
	private Long seqPessoa;
	@Column(name = "SEQ_GRUPO")
	private Long seqGrupo;
	@Column(name = "USUARIO")
	private String usuario;
	@Column(name = "SENHA")
	private String senha;
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "DT_CRIACAO")
	private Date dtCriacao;

	@ManyToOne
	@JoinColumn(name = "SEQ_PESSOA", insertable = false, updatable = false)
	private Pessoa pessoa;

	/**
	 * Retorna o valor do atributo.
	 * 
	 * @return O valor do atributo id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * Define o valor do atributo.
	 * 
	 * @param id
	 *            atribui um valor ao atributo id
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * Retorna o valor do atributo.
	 * 
	 * @return O valor do atributo seqPessoa
	 */
	public Long getSeqPessoa() {
		return seqPessoa;
	}

	/**
	 * Define o valor do atributo.
	 * 
	 * @param seqPessoa
	 *            atribui um valor ao atributo seqPessoa
	 */
	public void setSeqPessoa(Long seqPessoa) {
		this.seqPessoa = seqPessoa;
	}

	/**
	 * Retorna o valor do atributo.
	 * 
	 * @return O valor do atributo seqGrupo
	 */
	public Long getSeqGrupo() {
		return seqGrupo;
	}

	/**
	 * Define o valor do atributo.
	 * 
	 * @param seqGrupo
	 *            atribui um valor ao atributo seqGrupo
	 */
	public void setSeqGrupo(Long seqGrupo) {
		this.seqGrupo = seqGrupo;
	}

	/**
	 * Retorna o valor do atributo.
	 * 
	 * @return O valor do atributo usuario
	 */
	public String getUsuario() {
		return usuario;
	}

	/**
	 * Define o valor do atributo.
	 * 
	 * @param usuario
	 *            atribui um valor ao atributo usuario
	 */
	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	/**
	 * Retorna o valor do atributo.
	 * 
	 * @return O valor do atributo senha
	 */
	public String getSenha() {
		return senha;
	}

	/**
	 * Define o valor do atributo.
	 * 
	 * @param senha
	 *            atribui um valor ao atributo senha
	 */
	public void setSenha(String senha) {
		this.senha = senha;
	}

	/**
	 * Retorna o valor do atributo.
	 * 
	 * @return O valor do atributo dtCriacao
	 */
	public Date getDtCriacao() {
		return dtCriacao;
	}

	/**
	 * Define o valor do atributo.
	 * 
	 * @param dtCriacao
	 *            atribui um valor ao atributo dtCriacao
	 */
	public void setDtCriacao(Date dtCriacao) {
		this.dtCriacao = dtCriacao;
	}

	/**
	 * Retorna o valor do atributo.
	 * 
	 * @return O valor do atributo pessoa
	 */
	public Pessoa getPessoa() {
		return pessoa;
	}

	/**
	 * Define o valor do atributo.
	 * 
	 * @param pessoa
	 *            atribui um valor ao atributo pessoa
	 */
	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

}
